package com.dl.exam.mapper;

import com.alibaba.fastjson.JSONObject;
import com.dl.exam.entity.question.SingleQuestion;
import com.dl.exam.entity.question.SubjectiveQuestion;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * @author DL
 * @create 2022-04-21 18:21
 */
public interface SubjectiveMapper {

    int insertQuestion(SubjectiveQuestion subjectiveQuestion);

    int deleteQuestion(String questionId);

    int updateQuestion(JSONObject questionForm);

    SubjectiveQuestion queryQuestionById(String questionId);


    /**
     * 根据 用户id 查询用户的考试题目（未完成的考试）
     * @param examId 考试id
     * @return 考试信息
     */
    List<SingleQuestion> queryUnfinishedQuestion(String examId);

    /**
     * 查询所有单选题
     * @return 带分页信息的单选题
     */
    List<SubjectiveQuestion> queryAllQuestion();

    /**
     * 考试开始，随机抽取试题
     * @param jsonObject 条件
     * @return 带分页信息的单选题
     */
    List<SingleQuestion> queryRandomQuestionByCondition(JSONObject jsonObject);

    /**
     * 根据条件查询试题
     * @param subject 科目
     * @param degree 难度
     * @return 带分页信息的单选题
     */
    List<SubjectiveQuestion> queryQuestionByCondition(JSONObject jsonObject);

    /**
     * 查询某场已完成的考试信息和答案
     * @param examId 考试id
     * @return
     */
    List<SubjectiveQuestion> queryFinishedExamAnswer(String examId);

    /**
     * 根据 考试id 查询考试试题的答案
     * @param examId 用户id
     * @return 考试信息
     */
    List<HashMap<String, Object>> queryAnswerByExamId(String examId);
}
